一次awdplus经历(网鼎杯线下赛) |
您所在的位置:网站首页 › awd waf › 一次awdplus经历(网鼎杯线下赛) |
开头
首先谈谈awdplus吧。个人觉得其实有点像今年的ciscn,其实就是ctf多了一个修题的环节。与awd差别还是挺大的,全程不会接触靶机,不需要ssh连,所以也不存在什么准备各种牛鬼蛇神的脚本,还是比较轻松的,每轮到了时间,拿到flag了,提交,平台会自动攻击未成功防御的选手 上图是其中一道题,攻击就只需要打自己的网站,比如你通过未过滤的命令执行点获得了flag,提交,即代表攻击成功。然后防御需要你写过滤后的源码,与update.sh一起打包成.tar.gz格式的文件,update.sh 里写mv -f 文件名 目标路径,上传到ftp后,在平台上点答题,填入压缩包文件名,平台会自动用exp打,如果exp打失败了,即为修补成功 小tricks:这里问了几个师傅,比如在今年一道目录穿越的题上,我是通过过滤..的方法修补成功,但也有师傅直接把小写的flag,改成大写的flag,exp同样打失败,判断为修补成功,所以exp打的方式可能比较单一苛刻,很多方法都可以起到防御的作用。 web_AliceWebsite这题比较简单,拿到源码后直接丢到D盾里 可以看到直接爆出,找到对应文件路径,确定位置,源码如下: 可以看到这里用户传入的action并没有任何的过滤,直接可以目录穿越 payload: ?action=../../../../flag 防御: 这里通过新建一个黑名单,过滤..和../的方法防御成功 FAKA(源码和复现buu上均有,我就懒得放源码了) somd5大法好,比赛的时候太难了,找到了md5密码,解不出来,跑也跑不出来,气个半死 后台就是/admin,进入后台后,发现|备份管理|添加备份|下载处同样是目录穿越,吐槽一下,同一个知识点怎么还考两次 function downloadBak() { $file_name = $_GET['file']; $file_dir = $this->config['path']; if (!file_exists($file_dir . "/" . $file_name)) { //检查文件是否存在 return false; exit; } else { $file = fopen($file_dir . "/" . $file_name, "r"); // 打开文件 // 输入文件标签 header('Content-Encoding: none'); header("Content-type: application/octet-stream"); header("Accept-Ranges: bytes"); header("Accept-Length: " . filesize($file_dir . "/" . $file_name)); header('Content-Transfer-Encoding: binary'); header("Content-Disposition: attachment; filename=" . $file_name); //以真实文件名提供给浏览器下载 header('Pragma: no-cache'); header('Expires: 0'); //输出文件内容 echo fread($file, filesize($file_dir . "/" . $file_name)); fclose($file); exit; } }防御的话一样做个黑名单,过滤一下即可 看了师傅们博客还有其他很多思路,这里就不赘述了 太菜了,没进总决赛,只有这两道题wp |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |